package com.ms.qw.client.dto;

import com.ms.qw.domain.model.*;
import com.ms.qw.enums.ActivoInactivo;
import org.joda.time.DateTime;

import javax.persistence.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;

public class ProgramacionDTO extends AuditoriaDTO {

    private Integer codigo;
    private Integer RowNum;

    private Integer tipoClaseRacion;
    private Integer codigoTipoRacion;
    private Integer codigoRacion;
    private RacionDTO racion=new RacionDTO();
    private Integer codigoComite;
    private ComiteDTO comite = new ComiteDTO();
    private Integer codigoCampana;
    private CampanaDTO campana = new CampanaDTO();


    private String estado;

    private List<ProgramacionDetalleDTO> detalle;

    public ProgramacionDTO() {
        setEstado(ActivoInactivo.ACTIVO.getCodigo());
    }

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }



    // todo arreglar esto
    public void addDetalle(ColegioDTO colegioDTO) {
        if (getDetalle() == null) detalle = new ArrayList<ProgramacionDetalleDTO>();
        ProgramacionDetalleDTO programacionDetalleDTO = new ProgramacionDetalleDTO();
        programacionDetalleDTO.setColegio(colegioDTO);
        programacionDetalleDTO.setProgramacion(this);
        programacionDetalleDTO.setDistritoNombre(colegioDTO.getDistritoNombre());
        programacionDetalleDTO.setProvinciaNombre(colegioDTO.getProvinciaNombre());
        programacionDetalleDTO.setNroInicial(colegioDTO.getNroInicial());
        programacionDetalleDTO.setTipoNivel(colegioDTO.getTipoNivel());
        programacionDetalleDTO.setNroPrimaria1(colegioDTO.getNroPrimaria1());
        programacionDetalleDTO.setNroPrimaria2(colegioDTO.getNroPrimaria2());
        programacionDetalleDTO.setNroTotal(colegioDTO.getNroTotal());
//        programacionDetalleDTO.setFechaProgramacion(getCampana().getFechaInicio());
        detalle.add(programacionDetalleDTO);
    }

    public Integer getCodigoRacion() {
        return codigoRacion;
    }

    public void setCodigoRacion(Integer codigoRacion) {
        this.codigoRacion = codigoRacion;
    }

    public Integer getCodigoComite() {
        return codigoComite;
    }

    public void setCodigoComite(Integer codigoComite) {
        this.codigoComite = codigoComite;
    }

    public Integer getCodigoCampana() {
        return codigoCampana;
    }

    public void setCodigoCampana(Integer codigoCampana) {
        this.codigoCampana = codigoCampana;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public List<ProgramacionDetalleDTO> getDetalle() {
        return detalle;
    }

    public void setDetalle(List<ProgramacionDetalleDTO> detalle) {
        this.detalle = detalle;
    }

    public RacionDTO getRacion() {
        return racion;
    }

    public void setRacion(RacionDTO racion) {
        this.racion = racion;
    }

    public ComiteDTO getComite() {
        return comite;
    }

    public void setComite(ComiteDTO comite) {
        this.comite = comite;
    }

    public CampanaDTO getCampana() {
        return campana;
    }

    public void setCampana(CampanaDTO campana) {
        this.campana = campana;
    }

    public Integer getRowNum() {
        return RowNum;
    }

    public void setRowNum(Integer rowNum) {
        RowNum = rowNum;
    }

    public Integer getCodigoTipoRacion() {
        return codigoTipoRacion;
    }

    public void setCodigoTipoRacion(Integer codigoTipoRacion) {
        this.codigoTipoRacion = codigoTipoRacion;
    }

    public Integer getTipoClaseRacion() {
        return tipoClaseRacion;
    }

    public void setTipoClaseRacion(Integer tipoClaseRacion) {
        this.tipoClaseRacion = tipoClaseRacion;
    }

    @Override
    public String toString() {
        return "ProgramacionDTO{" +
                "codigo=" + codigo +
                ", RowNum=" + RowNum +
                ", tipoClaseRacion=" + tipoClaseRacion +
                ", codigoTipoRacion=" + codigoTipoRacion +
                ", codigoRacion=" + codigoRacion +
                ", racion=" + racion +
                ", codigoComite=" + codigoComite +
                ", comite=" + comite +
                ", codigoCampana=" + codigoCampana +
                ", campana=" + campana +
                ", estado='" + estado + '\'' +
                ", detalle=" + detalle +
                '}';
    }
}
